Програми на сървъра.

#1   : besenka.prg
#2   : "sess" и "буква" са променливи, които трябва да пристигнат с входния файл от post-командата
#3   : срок_мин казва след колко минути сесията се обявява за невалидна
#4   срок_мин 20
#5   минути_в_деня 24*60
#6   срок срок_мин/минути_в_деня
#7   брой_сбъркани 0
#8   макс_грешки 5
#9
#10  : опис на подпрограмите
#11  направи_страница             0100
#12  състави_думата_за_показване  1200
#13  състави_редовна_страница     0400
#14  сложи_текст_в_страницата     2100
#15
#16  : -------------------------------
#17
#18  коментар1_ ''
#19  коментар2_ ''
#20  чмомент_нов make_dtpacket.prg('','')
#21  момент_нов numtodh(чмомент_нов)
#22  база GTEMP
#23  рсп present(sess,1,1,1)
#24  ако рсп>0
#25   момент_стар scell(рсп,2)
#26   чмомент_стар dhtonum(момент_стар)
#27   откога чмомент_нов-чмомент_стар
#28   пресен (откога>0) and (откога<срок)
#29   ако пресен=0
#30    вмкред(рсп,-1)
#31    рсп 0
#32   иначе
#33    поле (рсп,2)=момент_нов
#34   крайако
#35   има_игра пресен
#36  иначе
#37   има_игра 0
#38  крайако
#39  ако subm='Нова игра'
#40   има_игра 0
#41   ако рсп>0 то вмкред(рсп,-1)
#42  крайако
#43
#44  ако има_игра
#45   поле (рсп,2)=момент_нов
#46   поле (1,4)=буква
#47   блок големи(1,4,1,4)+
#48   буква scell(1,4)
#49   стара_буква posit(1,4,рсп,4)
#50   дума_ scell(рсп,3)
#51   жокер_ find_text.prg(дума_,'WORDS',1,2)
#52   ако стара_буква
#53    коментар2_ 'Буквата "'+буква+'" е вече опитана, пробвайте с друга'
#54    буква ''
#55   крайако
#56   валидна_буква буква<>'' and буква>='А' and буква<='Я'
#57   ако валидна_буква=0 and стара_буква=0
#58    коментар2_ 'Буквата "'+буква+'" е невалидна, пробвайте с друга'
#59    буква ''
#60   крайако
#61   линия_ линия_+буква
#62   поле (рсп,4)=линия_
#63   блок големи(рсп,4,рсп,4)+
#64   линия_ scell(рсп,4)
#65  иначе
#66   : избира случайна дума от речника
#67   база words
#68   брой_думи countrr(0)
#69   думаномер rnd(брой_думи)+1
#70   дума_ scell(думаномер,1)
#71   жокер_ scell(думаномер,2)
#72   : добавя игра
#73   база GTEMP
#74   добави 1
#75   рсп countrr(0)
#76   поле (рсп,1)=sess
#77   поле (рсп,3)=дума_
#78   поле (рсп,2)=момент_нов
#79   линия_ ''
#80   буква ''
#81  крайако
#82
#83  подпреход направи_страница
#84  база GTEMP
#85  поле (1,1)='session'
#86  поле (1,4)=''
#87  ако (край_на_играта)
#88   поле (1,2)='рсп:'+рсп
#89   ако рсп<countrr(0) and (рсп>0)
#90    вмкред (рсп,-1)
#91    рсп 0
#92   крайако
#93   ако рсп=countrr(0) and (рсп>0) то добави -1
#94  крайако
#95  изтр STRANICA
#96  стоп(3)
#97  =======================================
#98  0100 : подпрограма направи страница
#99  подпреход състави_думата_за_показване
#100 ако край_на_играта
#101  ако играта_е_загубена
#102   коментар2_ 'Съжалявам, загубихте играта, думата е "'+дума_+'"'
#103  иначе
#104   коментар2_ 'Браво, ВИЕ ПЕЧЕЛИТЕ, познахте думата "'+дума_+'"'
#105  крайако
#106 крайако
#107 подпреход състави_редовна_страница
#108 пробратно
#109 =======================================
#110 0400 : подпрограма направи редовна страница
#111 коментар1_ 'Грешки :'+брой_сбъркани
#112 коментар_ коментар2_+'<br>'+ коментар1_
#113 създай STRANICA(80,50)
#114 база STRANICA
#115 добави 1000
#116 блок тексто(1,1,1000,2) BESENKA_0.HTM
#117 отрезф(0,1)
#118
#119 указател '<!-- Думата за познаване -->'
#120 съдържание нова_дума
#121 подпреход сложи_текст_в_страницата
#122
#123 указател '<!-- Подсказващ текст -->'
#124 съдържание '(жокер:'+жокер_+')'
#125 подпреход сложи_текст_в_страницата
#126
#127 указател '<!-- Картинка на бесилката -->'
#128 файл_с_картинка 'besenka_'+брой_сбъркани+'.jpg'
#129 съдържание '<img src="'+файл_с_картинка+'">'
#130 дестинация фолдър_данни+'\'+файл_с_картинка
#131 фкопи @файл_с_картинка @дестинация
#132 подпреход сложи_текст_в_страницата
#133
#134 указател '<!-- Линия с опитани букви -->'
#135 съдържание 'ОПИТАНИ БУКВИ:'+линия_
#136 подпреход сложи_текст_в_страницата
#137
#138 указател '<!-- Коментарен текст -->'
#139 съдържание коментар_
#140 подпреход сложи_текст_в_страницата
#141
#142 указател '<!-- Входна линия -->'
#143 съдържание '<input type="hidden" name="lettersline" value="'+линия_+'" />'
#144 подпреход сложи_текст_в_страницата
#145
#146 указател '<!-- Сесиен идентификатор -->'
#147 съдържание '<input type="hidden" name="sessionid" value="'+sess+'"'
#148 подпреход сложи_текст_в_страницата
#149
#150 указател '<!-- Линия_за_въвеждане_на_буква -->'
#151 ако край_на_играта
#152  съдържание ''
#153 иначе
#154  съдържание 'Опитай тази буква:<input type="text" name="symbol" size="5" maxlength="1"> '
#155 крайако
#156 подпреход сложи_текст_в_страницата
#157
#158 указател '<!-- Бутон за изпращане -->'
#159 ако край_на_играта
#160  съдържание '<input type="submit" name="submit" value="Нова игра" />'
#161 иначе
#162  съдържание '<input type="submit" name="submit" value="Опитай" />'
#163 крайако
#164 подпреход сложи_текст_в_страницата
#165 дест фолдър_данни+'\'+изходен_файл
#166
#167 : блок текст(1,1,countrr(0),countcc(0)) @дест
#168 блок текст(1,1,countrr(0),countcc(0)) @изходен_файл
#169 пробратно
#170 =======================================
#171 1200 : съставя думата за показване
#172 поле (рсп,4)=линия_
#173 поле (рсп,5)=''
#174 блок големи(рсп,4,рсп,4)+
#175 дължина lenstr(дума_)
#176 брой_познати 0
#177 низ_познати ''
#178 нова_дума ''
#179 има_още 0
#180 индекс 1
#181 1210 : цикъл по буквите
#182 ако индекс>дължина то преход 1220
#183 оригинална_буква scopy(дума_,индекс,1)
#184 буква_за_показване '*'
#185 ако индекс=1 or индекс=дължина
#186  буква_за_показване оригинална_буква
#187 иначе
#188  поле (1,4)=оригинална_буква
#189  блок големи(1,4,1,4)+
#190  позната posit(1,4,рсп,4)>0
#191  ако позната
#192   нова posit(1,4,рсп,5)=0
#193   ако нова
#194    низ_познати низ_познати+оригинална_буква
#195    поле (рсп,5)=низ_познати
#196   крайако
#197   буква_за_показване оригинална_буква
#198   брой_познати брой_познати+1
#199  крайако
#200 крайако
#201 ако буква_за_показване='*' то има_още 1
#202 нова_дума нова_дума + буква_за_показване+' '
#203 индекс индекс+1
#204 преход 1210
#205 1220 : думата е готова
#206 : брой_сбъркани lenstr(линия_)-брой_познати
#207 брой_сбъркани lenstr(линия_)-lenstr(низ_познати)
#208 ако брой_сбъркани<0 то брой_сбъркани 0
#209 играта_е_загубена брой_сбъркани>=макс_грешки
#210 играта_е_спечелена има_още=0
#211 край_на_играта играта_е_загубена OR играта_е_спечелена
#212 пробратно
#213 =======================================
#214 2100 : подпрограма сложи_текст_в_страницата
#215 : указател показва къде е текста
#216 : съдържание се слага в страницата на реда под указателя
#217 рр1 present(указател,1,1,0)
#218 ако рр1=0
#219  грешка 11
#220  поле(1,1)=грешка
#221 : кажи ##лоша_начална_страница
#222  крайб4
#223 крайако
#224 поле (рр1+1,1) = съдържание
#225 пробратно
#226 =======================================